Skip to content

feat(macos): Typeless-style permission onboarding#4

Merged
PCcoding666 merged 1 commit into
masterfrom
feat/permission-onboarding
Jun 22, 2026
Merged

feat(macos): Typeless-style permission onboarding#4
PCcoding666 merged 1 commit into
masterfrom
feat/permission-onboarding

Conversation

@PCcoding666

Copy link
Copy Markdown
Owner

Problem

The first-run permission step treated all three permissions identically, but screen recording is special on macOS: it's the only one that needs an app restart to take effect (CGPreflight caches the stale value) and the only one that's optional (microphone-only mode covers the rest). Users granted it, came back, saw a red ✗, and got stuck — the "ugly" flow.

Change

  • Microphone + Speech Recognition = required — standard system prompts, instant. Onboarding proceeds once these two are granted.
  • Screen Recording = optional — shown below a divider with a muted icon + "Recommended" badge. Skipping falls back to microphone-only capture (logic already existed).
  • Restart handling — after requesting screen recording, the row shows a "Restart to apply" button that relaunches the app, instead of a permanently-red row.
  • requiredPermissionsGranted gates progress on the two essential permissions only.

Why not just copy Typeless

Typeless only needs the microphone, so its flow is trivially clean. LCT must capture system audio, which on macOS requires the restart-prone screen-recording permission. The fix is making that permission's guidance honest (optional + restart prompt), not hiding it.

Verified

  • Strict-concurrency build clean; 123 tests pass
  • Onboarding permission page rendered & inspected via computer-use — layered correctly (required orange, optional muted + badge)

🤖 Generated with Claude Code

Rework the first-run permission step so it stops treating screen recording
like the other two permissions. Screen recording is the only one that needs
an app restart to take effect (CGPreflight caches the old value) and the only
one that's optional (microphone-only mode covers the rest), yet it was
required and shown identically — users granted it, returned, saw a red X, and
got stuck.

- Microphone + speech recognition are required (standard prompts, instant);
  onboarding proceeds once those two are granted
- Screen recording is marked Recommended/optional with a muted icon; skipping
  it falls back to microphone-only capture
- After requesting screen recording, show a 'Restart to apply' button that
  relaunches the app, instead of a permanently-red row
- requiredPermissionsGranted gates progress on the two essential permissions

Why not just copy Typeless: it only needs the microphone, so its flow is
trivially clean. LCT must capture system audio, which on macOS requires the
restart-prone screen-recording permission — so the fix is making that one
permission's guidance honest, not hiding it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@PCcoding666 PCcoding666 merged commit 1dc9328 into master Jun 22, 2026
2 checks passed
@PCcoding666 PCcoding666 deleted the feat/permission-onboarding branch June 22, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant